package com.gitee.l0km.codegen.decorator;

import org.apache.commons.cli.Option;

import com.gitee.l0km.codegen.base.generator.GeneratorOptions;

public class MXBeanOptions extends GeneratorOptions implements MXBeanConstants{
	private final static MXBeanOptions instance = new MXBeanOptions();

	protected MXBeanOptions() {
		super();
		options.addOption(Option.builder(REFERENCE_CLASS_OPTION).longOpt(REFERENCE_CLASS_OPTION_LONG)
				.desc(REFERENCE_CLASS_OPTION_DESC).numberOfArgs(1).required().build());
		options.addOption(Option.builder(SOURCE_PREFIX_OPTION).longOpt(SOURCE_PREFIX_OPTION_LONG)
				.desc(SOURCE_PREFIX_OPTION_DESC).numberOfArgs(1).build());
		options.addOption(Option.builder(CLASS_PATH_OPTION).longOpt(CLASS_PATH_OPTION_LONG)
				.desc(CLASS_PATH_OPTION_DESC).numberOfArgs(1).build());

		options.addOption(Option.builder(MEMBERS_OPTION).longOpt(MEMBERS_OPTION_LONG)
				.desc(MEMBERS_OPTION_DESC).numberOfArgs(1).build());
		
		options.addOption(Option.builder().longOpt(EXCLUDE_METHODS_OPTION_LONG)
				.desc(EXCLUDE_METHODS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
		options.addOption(Option.builder().longOpt(INCLUDE_METHODS_OPTION_LONG)
				.desc(INCLUDE_METHODS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
		options.addOption(Option.builder().longOpt(EXCLUDE_FIELDS_OPTION_LONG)
				.desc(EXCLUDE_FIELDS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());
		options.addOption(Option.builder().longOpt(INCLUDE_FIELDS_OPTION_LONG)
				.desc(INCLUDE_FIELDS_OPTION_DESC).numberOfArgs(Option.UNLIMITED_VALUES).build());

	}

	/**
	 * @return instance
	 */
	public static MXBeanOptions getInstance() {
		return instance;
	}


}
